package com.zzyl.nursing.service.impl;

import java.time.LocalDateTime;
import java.util.List;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service;
import com.zzyl.nursing.mapper.ContractMapper;
import com.zzyl.nursing.domain.Contract;
import com.zzyl.nursing.service.IContractService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

/**
 * 合同业务层处理
 */
@Service
public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> implements IContractService {

    //更新合同状态（0：未生效，1：已生效，2：已过期，3：已失效）
    @Override
    public void updateContractStatus() {
        //查询符合条件的合同（合同状态等于0 && 合同开始时间小于等于当前时间）
        List<Contract> list = list(Wrappers.<Contract>lambdaQuery()
                .eq(Contract::getStatus, 0)
                .le(Contract::getStartDate, LocalDateTime.now()));
        //如果查询结果不为空，则遍历列表，批量设置合同状态为1（已生效）
        if (list != null && !list.isEmpty()) {
            list.forEach(item -> {
                item.setStatus(1);
            });
        }
        //执行批量更新操作
        updateBatchById(list);
    }
}